|
![](/i/fill.gif) |
I've just noticed that the behaviour of the two operators | and & has changed again
(at least in functions). With MegaPov I could make unions between isosurfaces with
the operator |. With the last beta, I managed to accomplish the same result with &.
In beta 10 neither work. I have to use min (f1,f2). Am I the only fool who is
surprised by this?
Ok, just in case this is a known bug/feature, I have a bonus question: why do I need
to translate the iso by a little amount in order to avoid a "floating-point
exception" fatal error? Why if I translate it along the x instead of z (or y) the
trick doesn't work? Shouldn't the iso remain the same since I'm not translating it at
a 'function level'?
POV-Ray beta 10 Windows ME Athlon.
#include "functions.inc"
#declare USE_AMPERSAND = off;
#declare USE_TRANSLATE = on;
#declare f_triv = function {f_helix2
(x,y,z,0,6.8,-sin(y*pi/5.5)*0.3*(y/2-abs(y)/2)/y,0.25,0,1,0)}
#declare cilindro = function {x^2+z^2-(0.25+min(0,y/5)*0.2)^2}
#if (USE_AMPERSAND)
#declare trivella=
isosurface {
function {cilindro(x,y,z)&f_triv(x,y,z)}
accuracy 10^-2
max_gradient 1.943
contained_by {box{<-0.7,1,-0.7>,<0.7,-5,0.7>}}
pigment {rgb 1}
#if (USE_TRANSLATE) translate 0.0001*z #end
}
#else
#declare trivella=
isosurface {
function {min (cilindro(x,y,z),f_triv(x,y,z))}
accuracy 10^-2
max_gradient 1.943
contained_by {box{<-0.7,1,-0.7>,<0.7,-5,0.7>}}
pigment {rgb 1}
#if (USE_TRANSLATE) translate 0.0001*z #end
}
#end
object {trivella}
camera {
location <0,2,-10>
look_at 0
}
light_source {
<50,50,-50>
rgb 1}
--
#local j=text{ttf"arial""JRG".2,0}#local J=0;#while(J<10)#local R=0;#while
(R<2)#local G=0;#while(G<1)#if(inside(j<R,G.1>))object{j scale.025translate
<R-1G-J/20J/-40+2>pigment{rgb<9J>}}#debug"O"#else#debug" "#end#local G=G+
.025;#end#local R=R+.05;#debug"\n"#end#local J=J+1;#end// JRG
Home: http://digilander.iol.it/jrgpov //New: Kitchen scene WIP
Post a reply to this message
|
![](/i/fill.gif) |